home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / OS / FWOSMisc / Include / FWFileOp.h next >
Encoding:
Text File  |  1996-04-25  |  10.2 KB  |  301 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:        FWFileOp.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWFILEOP_H
  11. #define FWFILEOP_H
  12.  
  13. #ifndef SLFILEOP_H
  14. #include "SLFileOp.h"
  15. #endif
  16.  
  17. //========================================================================================
  18. //    CLASS FW_COpenFileParameters - parameters for StandardGetFile (Mac) and GetOpenFileName (Windows)
  19. //========================================================================================
  20.  
  21. class FW_COpenFileParameters
  22. {
  23. public:
  24.     FW_DECLARE_AUTO(FW_COpenFileParameters)
  25.  
  26.     FW_COpenFileParameters();
  27.     ~FW_COpenFileParameters();
  28.     
  29. #ifdef FW_BUILD_MAC
  30.     FW_COpenFileParameters(OSType* fileType, 
  31.                            FileFilterProcPtr fileFilterProc = NULL);
  32.         // Use when there's only one file type
  33.     
  34.     FW_COpenFileParameters(short numTypes, 
  35.                            OSType* fileType, 
  36.                            FileFilterProcPtr fileFilterProcc = NULL);
  37.         // Use for 2-4 file types
  38.  
  39.     FW_COpenFileParameters(FileFilterProcPtr fileFilterProc);
  40.         // Use for filter proc only
  41.     
  42.     void                Set(short numTypes, 
  43.                             OSType *fileType, 
  44.                             FileFilterProcPtr fileFilterProc);
  45.  
  46.     short                MacCountTypes() const;
  47.     FileFilterProcPtr    MacGetFilterProc() const;
  48.     OSType*                MacGetTypes() const;
  49. #endif
  50.  
  51. #ifdef FW_BUILD_WIN
  52.     FW_COpenFileParameters(const FW_CString& filterString,
  53.                            const FW_CString& defaultExt,
  54.                            HWND ownerWindow = NULL);
  55.  
  56.     void        Set(const FW_CString& filterString,
  57.                     const FW_CString& defaultExt);
  58.  
  59.     char*        WinGetFilterString() const;
  60.     char*        WinGetDefaultExt() const;
  61.     HWND        WinGetOwnerWindow() const;
  62. #endif
  63.  
  64. private:
  65.     friend class FW_CChooseFile;
  66.     FW_SOpenFileParameters fRep;
  67. };
  68.  
  69.  
  70.  
  71. //========================================================================================
  72. //    CLASS FW_CSaveFileParameters - parameters for StandardPutFile (Mac) and GetSaveFileName (Windows)
  73. //========================================================================================
  74.  
  75. class FW_CSaveFileParameters
  76. {
  77. public:
  78.     FW_DECLARE_AUTO(FW_CSaveFileParameters)
  79.  
  80.     FW_CSaveFileParameters();
  81.     ~ FW_CSaveFileParameters();
  82.     
  83. #ifdef FW_BUILD_MAC
  84. public:
  85.     FW_CSaveFileParameters(const FW_CString& savePrompt,
  86.                            const FW_CString& defaultName);
  87.  
  88.     void MacGetSavePrompt(FW_CString& savePrompt) const;
  89.     void MacGetDefaultName(FW_CString& defaultName) const;
  90. #endif
  91.  
  92. #ifdef FW_BUILD_WIN
  93. public:
  94.     FW_CSaveFileParameters(const FW_CString& filterString,
  95.                            const FW_CString& defaultExt,
  96.                            const FW_CString& defaultName,
  97.                            HWND ownerWindow = NULL);
  98.  
  99.     void Set(const FW_CString& filterString,
  100.              const FW_CString& defaultExt,
  101.              const FW_CString& defaultName);
  102.                                         
  103.     char* WinGetFilterString() const;
  104.     char* WinGetDefaultExt() const;
  105.     char* WinGetDefaultName() const;
  106.     HWND WinGetOwnerWindow() const;
  107. #endif
  108.  
  109. private:
  110.     friend class FW_CChooseFile;
  111.     FW_SSaveFileParameters fRep;
  112. };
  113.  
  114. //========================================================================================
  115. //    CLASS FW_CChooseFile - choose a file to open or save
  116. //========================================================================================
  117.  
  118. class FW_CChooseFile
  119. {
  120.   public:
  121.     static FW_OFileSpecification* ChooseFileToOpen(const FW_COpenFileParameters& openFileParam)
  122.     {
  123.         return FW_ChooseFileToOpen((FW_SOpenFileParameters*)&openFileParam.fRep);
  124.     }
  125.     
  126.     static FW_OFileSpecification* ChooseFileToSave(const FW_CSaveFileParameters& saveFileParam)
  127.     {
  128.         return FW_ChooseFileToSave((FW_SSaveFileParameters*)&saveFileParam.fRep);
  129.     }
  130.  
  131.   private:
  132.     FW_CChooseFile();
  133. };
  134.  
  135. //========================================================================================
  136. //    CLASS FW_COpenFileParameters inlines
  137. //========================================================================================
  138.  
  139. #ifdef FW_BUILD_MAC
  140. //----------------------------------------------------------------------------------------
  141. //    FW_COpenFileParameters::Set
  142. //----------------------------------------------------------------------------------------
  143.  
  144. inline void FW_COpenFileParameters::Set(short numTypes, 
  145.                                         OSType *fileType, 
  146.                                         FileFilterProcPtr fileFilterProc)
  147. {
  148.     ::FW_FailOnError(FW_OpenFileParameters_MacSet(&fRep, numTypes, fileType, fileFilterProc));
  149. }
  150. #endif
  151.  
  152. #ifdef FW_BUILD_MAC
  153. //----------------------------------------------------------------------------------------
  154. //    FW_COpenFileParameters::MacCountTypes
  155. //----------------------------------------------------------------------------------------
  156. inline short FW_COpenFileParameters::MacCountTypes() const
  157. {
  158.     return FW_OpenFileParameters_MacCountTypes((FW_SOpenFileParameters*)&fRep);
  159. }
  160. #endif
  161.  
  162. #ifdef FW_BUILD_MAC
  163. //----------------------------------------------------------------------------------------
  164. //    FW_COpenFileParameters::MacGetFilterProc
  165. //----------------------------------------------------------------------------------------
  166. inline FileFilterProcPtr FW_COpenFileParameters::MacGetFilterProc() const
  167. {
  168.     return FW_OpenFileParameters_MacGetFilterProc((FW_SOpenFileParameters*)&fRep);
  169. }
  170. #endif
  171.  
  172. #ifdef FW_BUILD_MAC
  173. //----------------------------------------------------------------------------------------
  174. //    FW_COpenFileParameters::MacGetTypes
  175. //----------------------------------------------------------------------------------------
  176. inline OSType* FW_COpenFileParameters::MacGetTypes() const
  177. {
  178.     return FW_OpenFileParameters_MacGetTypes((FW_SOpenFileParameters*)&fRep);
  179. }
  180. #endif
  181.  
  182. #ifdef FW_BUILD_WIN
  183. //----------------------------------------------------------------------------------------
  184. //    FW_COpenFileParameters::Set
  185. //----------------------------------------------------------------------------------------
  186.  
  187. inline void FW_COpenFileParameters::Set(const FW_CString& filterString,
  188.                                         const FW_CString& defaultExt)
  189. {
  190.     ::FW_FailOnError(FW_OpenFileParameters_WinSet(&fRep, filterString, defaultExt));
  191. }
  192. #endif
  193.  
  194. #ifdef FW_BUILD_WIN
  195. //----------------------------------------------------------------------------------------
  196. //    FW_COpenFileParameters::WinGetFilterString
  197. //----------------------------------------------------------------------------------------
  198. inline char* FW_COpenFileParameters::WinGetFilterString() const
  199. {
  200.     return FW_OpenFileParameters_WinGetFilterString((FW_SOpenFileParameters*)&fRep);
  201. }
  202. #endif
  203.  
  204. #ifdef FW_BUILD_WIN
  205. //----------------------------------------------------------------------------------------
  206. //    FW_COpenFileParameters::WinGetDefaultExt
  207. //----------------------------------------------------------------------------------------
  208. inline char* FW_COpenFileParameters::WinGetDefaultExt() const
  209. {
  210.     return FW_OpenFileParameters_WinGetDefaultExt((FW_SOpenFileParameters*)&fRep);
  211. }
  212. #endif
  213.  
  214. #ifdef FW_BUILD_WIN
  215. //----------------------------------------------------------------------------------------
  216. //    FW_COpenFileParameters::WinGetOwnerWindow
  217. //----------------------------------------------------------------------------------------
  218. inline HWND FW_COpenFileParameters::WinGetOwnerWindow() const
  219. {
  220.     return FW_OpenFileParameters_WinGetOwnerWindow((FW_SOpenFileParameters*)&fRep);
  221. }
  222. #endif
  223.  
  224. //========================================================================================
  225. //    CLASS FW_CSaveFileParameters inlines
  226. //========================================================================================
  227.  
  228. #ifdef FW_BUILD_MAC
  229. //----------------------------------------------------------------------------------------
  230. //    FW_CSaveFileParameters::MacGetSavePrompt
  231. //----------------------------------------------------------------------------------------
  232. inline void    FW_CSaveFileParameters::MacGetSavePrompt(FW_CString& savePrompt) const
  233. {
  234.     savePrompt = FW_SaveFileParameters_MacGetSavePrompt((FW_SSaveFileParameters*)&fRep);
  235. }
  236. #endif
  237.  
  238. #ifdef FW_BUILD_MAC
  239. //----------------------------------------------------------------------------------------
  240. //    FW_CSaveFileParameters::MacGetDefaultName
  241. //----------------------------------------------------------------------------------------
  242. inline void    FW_CSaveFileParameters::MacGetDefaultName(FW_CString& defaultName) const
  243. {
  244.     defaultName = FW_SaveFileParameters_MacGetDefaultName((FW_SSaveFileParameters*)&fRep);
  245. }
  246. #endif
  247.  
  248. #ifdef FW_BUILD_WIN
  249. //----------------------------------------------------------------------------------------
  250. //    FW_CSaveFileParameters::Set
  251. //----------------------------------------------------------------------------------------
  252. inline void FW_CSaveFileParameters::Set(const FW_CString& filterString,
  253.                                         const FW_CString& defaultExt,
  254.                                         const FW_CString& defaultName)
  255. {
  256.     ::FW_FailOnError(FW_SaveFileParameters_WinSet(&fRep, filterString, defaultExt, defaultName));
  257. }
  258. #endif
  259.  
  260. #ifdef FW_BUILD_WIN
  261. //----------------------------------------------------------------------------------------
  262. //    FW_CSaveFileParameters::WinGetFilterString
  263. //----------------------------------------------------------------------------------------
  264. inline char* FW_CSaveFileParameters::WinGetFilterString() const
  265. {
  266.     return FW_SaveFileParameters_WinGetFilterString((FW_SSaveFileParameters*)&fRep);
  267. }
  268. #endif
  269.  
  270. #ifdef FW_BUILD_WIN
  271. //----------------------------------------------------------------------------------------
  272. //    FW_CSaveFileParameters::WinGetDefaultExt
  273. //----------------------------------------------------------------------------------------
  274. inline char* FW_CSaveFileParameters::WinGetDefaultExt() const
  275. {
  276.     return FW_SaveFileParameters_WinGetDefaultExt((FW_SSaveFileParameters*)&fRep);
  277. }
  278. #endif
  279.  
  280. #ifdef FW_BUILD_WIN
  281. //----------------------------------------------------------------------------------------
  282. //    FW_CSaveFileParameters::WinGetDefaultName
  283. //----------------------------------------------------------------------------------------
  284. inline char* FW_CSaveFileParameters::WinGetDefaultName() const
  285. {
  286.     return FW_SaveFileParameters_WinGetDefaultName((FW_SSaveFileParameters*)&fRep);
  287. }
  288. #endif
  289.  
  290. #ifdef FW_BUILD_WIN
  291. //----------------------------------------------------------------------------------------
  292. //    FW_CSaveFileParameters::WinGetOwnerWindow
  293. //----------------------------------------------------------------------------------------
  294. inline HWND FW_CSaveFileParameters::WinGetOwnerWindow() const
  295. {
  296.     return FW_SaveFileParameters_WinGetOwnerWindow((FW_SSaveFileParameters*)&fRep);
  297. }
  298. #endif
  299.  
  300. #endif
  301.